package cn.lzm.serializer;

/**
 * @author lzm
 * @Date 2024/7/16
 * @description
 */
public interface Serializer {

    /**
     * 序列化
     *
     * @param data 这里的T实际上和object差不多
     * @return 字节流
     */
    <T> byte[] serialize(T data);

    /**
     * 反序列化
     *
     * @param data 字节流
     * @param clazz 参数类型，虽然在代码逻辑中没用，但是使用该方法时，需要使用这个参数来实现类型强转
     * @return 数据
     */
    <T> T deserialize(byte[] data, Class<T> clazz);

}
